home *** CD-ROM | disk | FTP | other *** search
/ The Apple Sales & Marketi…urce Library 1999 August / Resource Library August 99.toast / mac / AppleShare IP 6.2 (NFR) / AppleShare IP 6.2 Install / Unsupported Tools / PGPuam plugin kit / !!! READ ME !!! next >
Text File  |  1999-03-10  |  13KB  |  310 lines

  1. PGPuam - Public Key Authentication for AppleShare IP.
  2.  By Vinnie Moscaritolo 
  3. Last Revision 1.0.1 3/10/99
  4.  
  5. THIS IS SAMPLE CODE!
  6. -------------------- 
  7.  
  8.      Before you go any further, I would suggest that you check my
  9.     website at <http://www.vmeng.com/vinnie/Papers/pgpuam.html>
  10.     to see if there is a newer copy of both the code and/or
  11.     documentation. This is the first public release, It is pretty
  12.     stable for everyday use, but I am aware of a few bugs. I 
  13.     have listed them below.. 
  14.     
  15.     This sample is a good example of what can be done with the 
  16.     AppleShare IP UAM sdk and also provides some useful authenication 
  17.     on the Macintosh.
  18.  
  19.  WHAT IS IT?
  20. ------------ 
  21.  
  22.    PGPuam is an enhancement to the standard AppleShare IP User Access
  23.    Methods  (UAM) that enables a user to perform two-way strongly 
  24.    authenticated logins to an AppleShare IP server from a Mac OS client. 
  25.    The PGPuam system consists of two major components, a client and a 
  26.    server plug-in. 
  27.  
  28. WHY DO I WANT IT? 
  29. -----------------
  30.  
  31.     Tired of remembering and keeping track of Appleshare passwords?
  32.     Did you know that  same digital signature technology that is used to
  33.     guarantee the identity of  e-mail  can also be used to strongly authenticate
  34.     users of network services. This provide three  significant advantages over
  35.     password based user authentication systems:
  36.     
  37.     - Since the same key and passphrase used to sign e-mail messages is
  38.       also used for server access, (you only need to remember one passphrase)
  39.     
  40.     - Strong user authentication is provided by cryptographic digital
  41.       signatures.
  42.     
  43.     - Since the user maintains the only secret material in the system,
  44.       compromising a server's user  database results in limited damage.
  45.  
  46.  HOW DOES IT WORK? 
  47. -----------------
  48.  
  49.     Authentication with Cryptographic Signatures 
  50.     
  51.     E-mail communication on the Internet faces a security challenge similar to
  52.     network user authentication. Since e-mail packets are broadcast through
  53.     public networks, these messages can also be eavesdropped on and
  54.     counterfeited by unauthorized individuals. However e-mail vendors have
  55.     been able to address this problem by leveraging public key cryptography to
  56.     digitally sign and authenticate e-mail messages. 
  57.     
  58.     In a public key cryptosystem, each user or principle generates a pair of
  59.     mathematically-related cryptographic keys. These keys are created in such
  60.     a way that it is computationally infeasible to derive one key from the
  61.     other. One of the keys is made publicly available to anyone who wishes to
  62.     communicate with that user. The other key is kept private and never
  63.     revealed to anyone else. This private key is secured by either placing it
  64.     in a hardware token or further encrypting it to a passphrase, or both. The
  65.     private key is then used by the principal to digitally sign data. This
  66.     digital signature can later be checked with the matching public key to
  67.     ensure that the data has not been tampered with and that it originated
  68.     from the holder of the private key. 
  69.     
  70.     Since the holder of the private key is the only entity who can create a
  71.     digital signature that verifies with the corresponding public key, there
  72.     is a strong correlation between a user's identity and the ability to sign
  73.     with that private key. Thus the public key can function as a principleÕs
  74.     identity in cyberspace . 
  75.     
  76.     Because they provide such strong testimony to the authenticity of the
  77.     sender, public-key cryptographic systems are becoming very popular among
  78.     today's Internet e-mail users. 
  79.     
  80.     The same digital signature technology that guarantees the identity of the
  81.     e-mail sender can be used to strongly authenticate users of network
  82.     services, too. By having the user sign a random challenge message from the
  83.     server at login, the server can verify the identity of the user with his
  84.     public key. The server randomly creates the challenge message to prevent
  85.     replay attacks. This process is illustrated in the following scenario : 
  86.     
  87.     1. The user initiates network service access. 
  88.     
  89.     2. The server looks up the user's public key in its authentication
  90.     database. The server then generates a random challenge string and sends
  91.     the challenge to the client. 
  92.     
  93.     3. The client digitally signs the challenge string and returns the
  94.     cryptographic signature to the server. The client also sends a counter
  95.     challenge string which is used to verify the server's authenticity. 
  96.     
  97.     4. The server then checks the client's signature and, if successful,
  98.     grants access. It also signs and returns the client's counter-challenge. 
  99.     
  100.     This process provides several significant advantages over password based
  101.     user authentication systems: 
  102.     
  103.     - Since the same key and passphrase used to sign e-mail messages is also
  104.     used for server access, the user need only remember one passphrase. This
  105.     is done without the risks associated with passphrase caches. 
  106.     
  107.     - Strong user authentication is provided by cryptographic digital
  108.     signatures. 
  109.     
  110.     - Since the user maintains the only secret material in the system,
  111.     compromising a server's user database results in limited damage. 
  112.     
  113.     While similar systems have been proposed by a number of researchers they
  114.     lacked the availability of a widely-accepted key infrastructure. Since PGP
  115.     already has a large key infrastructure, I have chosen to exploit this by
  116.     building a challenge-response system using the PGP software developers kit
  117.     (PGPsdk), which is avilable from the pgp website . 
  118.     
  119.     
  120. WHAT DOES IT RUN ON? 
  121. -------------------
  122.  
  123.     I have tested the client on MacOS 8.5 PPC only. I have no reason to belive
  124.     that it would not run on 8.1 PPC . It requires AppleShare Client 3.8.1 (or
  125.     newer, it comes with 8.5). The server works with   AppleShare 6.1.  Most 
  126.     important, you must have a copy of PGP 6.0 or better on the client, manager
  127.     and servers machines.
  128.  
  129. ABOUT THE CODE.
  130. -------------------
  131.  
  132.     PGPuam is a Metrowerks Codewarrior PRO 4 project.  The code
  133.     is considered sample code for now. It uses a bunch of
  134.     technologies such as: CFM, Appearance Manager, Collections
  135.     Manager, PGPsdk etc. So there is a lot to learn by examining
  136.     the code itself. You can find the sources on the Apple Developer CDs.  
  137.     
  138.  
  139.  EXPORT ISSUES 
  140. --------------
  141.  
  142.     PGPuam does not contain any crypto code. It is purely for
  143.     authentication use only. (In fact all Signatures and Random
  144.     number generation is done via the PGPsdk) Feel free to enjoy
  145.     it.
  146.   
  147.  
  148. HOW DO I SET IT UP?
  149. -------------------
  150.     Server:
  151.     
  152.     0) Install PGP 6.0 (or better) on the server (or at least drop the approp PGP
  153.         libraries into the Extension folder)
  154.     
  155.     1) Drop the "PGPuam Server" file in the "AppleShare IP UAM" folder found in
  156.         the server's extension folder. 
  157.     
  158.     2)  - Unfortunately you must also Modify the  SIZE resource of the "AppleShare
  159.          IP Registry"  file in  server's extension folder to allocate a bit
  160.          more memory then the stock configuration.   I suggest adding at least 
  161.          1K more space. Yes this is a bug  in the ASIP design and yes they are
  162.          working on a fix for the   future, but for now you can correct this using
  163.          your favorite resource editor. 
  164.          
  165.     3) Reboot the server. 
  166.     
  167.      
  168.     Manager:
  169.     
  170.     0) Install PGP 6.0 (or better) and make sure it runs, you'll need  to at 
  171.         least setup the default keychains.
  172.     
  173.     1) Launch the PGPuam Manager program
  174.     
  175.     2) Select a server in the "Connect.." Dialog (This must be done on a
  176.         machine remote to the server for now, must also have appletalk
  177.          connectivity)  and enter the Admin Name/password.
  178.     
  179.     3) Select "Server Settings" from  the Server menu.  and Press "Generate" to
  180.         create a server key. (it might ask you to move the mouse around) then
  181.          save the   key.. 
  182.     
  183.     4) Drag out a copy of the new public key to the desktop and save this, you
  184.         will need this for users later.
  185.     
  186.     5) Close the window.
  187.     
  188.     6) Go to the User List window and open a test user up, drag in a copy of
  189.         that users's public Key (From PGPkeys or whatever) and save. Do this
  190.          for each   user you want to test with.
  191.     
  192.     Clients:
  193.     
  194.     0) Install PGP 6.0 (or better) and make sure it runs, you'll need  to  at least setup
  195.         the default keychains. Each client  will need their own keys, it can 
  196.         (should be) be an existing key.
  197.     
  198.     1) If you are not already running "AppleShare" client 3.8.1 (comes with     
  199.         macOS 8.5) then update now. You should be able to find a copy at
  200.         the Appleshare IP website at <http://www.apple.com/appleshareip/> .
  201.     
  202.     2) Create a folder in the Extensions folder titled "AppleShare Folder"
  203.            and  Drop the "PGPuam" into that folder and reboot
  204.     
  205.     3) Get a copy of the server PUBLIC key from sysAdmin and drop it into   
  206.         PGPkeys.
  207.     
  208.     4) open the server in the Chooser and select the "PGP Challenge/REsponse"   
  209.         logon method
  210.     
  211.     (the  PUPuam dialog should pop up, feel free to hunt around) 
  212.     
  213.     5) Login with approp user name, you will be asked by PGP to enter the appop     
  214.         passphrase for the key that the sysadmin installed under your username.
  215.     
  216.     6) you'r In.
  217.  
  218.  
  219.  
  220. KNOWN BUGS and THINGS TO DO 
  221. ---------------------------
  222.  
  223. PGPuam Client
  224. -------------
  225.  
  226.     - Balloon Help does not work. Balloon Help is particularly important when
  227.     the interface uses unlabeled buttons.
  228.  
  229. --------------------------------------------
  230.  
  231.     - The picture in the About panel still does not display. (Actually, it
  232.     displays briefly, then disapears. Is there a button being drawn over the
  233.     picture?)
  234.  
  235. --------------------------------------------
  236.  
  237.  - The Apple Help button isn't hooked up yet.
  238.  
  239.   
  240. =========================================================================
  241.  
  242. PGPuam Server
  243. -------------
  244.  
  245.     - CRASH on Shutdown, propb due to OT being shutdown before ASIP plugins.
  246.     this is an ASIP bug.. and we are in the process of tracking it down.
  247.   
  248.  
  249. =========================================================================
  250. PGPuam Admin Problems
  251. ---------------------
  252.  
  253.   - The "Select Server" window is not centered. This is currently deffered 
  254.   due to lazy programmer. Actually I am trying to replace the StandardNBP call
  255.   with something better. When a NSL or such thing becomes available, I will
  256.   update it.
  257.  
  258. --------------------------------------------
  259.  
  260.    - The Password field of the Connect to AppleShare window probably should
  261.     not indicate the password length with bullets. ;-) THis isn't a bug, 
  262.     what it indicated is that the admin password is used in a remote authication
  263.     scheme and is sent over the network, albeit using two-way randnum. It's
  264.     not as secure as the PGPuam method.
  265.  
  266. --------------------------------------------
  267.  
  268.       - The Name and Kind labels in the User List window appear with a gray
  269.     background when the rest of the window has a white background. (I run Mac
  270.     OS 8.1 with the Black & White appearance variation.) This may be a bug in
  271.     Appearance 1.0.1 or PowerPlant. (Send me your latest sources and I will
  272.     investigate further.) Btw, the "AppleShare IP Web & File Server"
  273.     application has the same problem in the Server Info panel.
  274.  
  275.     I belive this is a bug in the appearance MGR.
  276.     
  277. --------------------------------------------
  278.  
  279.     - Select of list items in the User List window darkens the item's icons,
  280.     but it does not color the text of the item, when used in Black and White mode.
  281.  
  282.  --------------------------------------------
  283.  
  284.       - Opening a second User window displays the window to the right of the
  285.     first as if the windows were being tiled. Opening a third displays the
  286.     window on top of the second. This probably is a PowerPlant bug.  
  287.    
  288. --------------------------------------------
  289.   
  290.     - If the local AppleShare Admin deletes a user when the PGPuam Admin has 
  291.     the user open in a window, it will not be properly be reflected. However
  292.     the user will disappear from the User list window. I have to think about 
  293.     what the proper way to alert the admin user about the changes are..
  294.     
  295.     
  296.  =========================================================================
  297.  
  298. STAY TUNED.
  299.  
  300.     I plan to actively update this code in the near future. So
  301.     check the Website every now and them for the latest update.
  302.     feel free to email any questions and/or suggestions..
  303.  
  304. Vinnie Moscaritolo
  305.  World Wide DTS, Apple Computer.
  306. - ------------------ 
  307. http://www.vmeng.com/vinnie/ 
  308. DSS/DH: 3F903472C3AF622D5D918D9BD8B100090B3EF042
  309.  
  310.